Some embodiments of the present invention relate to processing data stored using a vector architecture and more particularly to a system and method for retrieving permutations of vector memories for executing intra vector operations.
Current computing systems with vector architectures may store a plurality of data elements, in sequential order, at a single memory address. A processor may execute each operation, together, on all elements in a vector memory or segment thereof.
Certain operations, such as vector addition, compose elements from each vector sequentially in the order in which the elements are stored in the vectors and are thus compatible with the storage structure of the vector memories. However, other operations, such as linear combinations, may compose adjacent elements in a vector with different elements. Independently manipulating or executing different operations on each element within a vector memory (at a single address) may be referred to as “intra” vector operations (i.e., independently operating within a vector memory).
Current solutions for executing different operations within a vector memory include rearranging elements in vector memories to align elements to be in the order in which they are to be composed. However, such solutions typically add extra processing steps for rearranging elements and alter the native storage structure of vector memories. Another solution, which maintains the native storage structure of the vector memories, composes every combination of elements to be composed in their vector memories, extracting the necessary products and discarding the rest. This brute-force approach wastes a significant amount of computational resources.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.